package br.com.sjdr.projeto.persistencia;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;

import br.com.sjdr.projeto.pessoa.Cliente;

/**
 * Classe respons�vel por gravar e ler arquivos referentes aos clientes da empresa.
 * Os dados vindos de um vetor s�o salvos em arquivos texto .txt para a poss�vel 
 * futura utiliza��o. Sempre � executada no in�cio e fim do programa.
 * @author thalim
 *
 */
public class PersistirCliente {

	public static ArrayList<Cliente> clientelist = new ArrayList<Cliente>();

	public static void gravarobjeto(Cliente cli) {
		clientelist.add(cli);
	}

	/**
	 * M�todo respons�vel por gravar o nome,cpf,telefone e endere�o de todos os
	 * clientes presentes no vetor clientelist em um arquivo texto(.txt) "arqClientes.txt"
	 * onde poder� ser lido na abertura do programa para reutilizar os dados.
	 * @throws Exception
	 */
	public static void escreverArqCliente() throws Exception {

		File arqCli = new File("arqClientes.txt");
		FileWriter escritor = new FileWriter(arqCli);
		PrintWriter escrever = new PrintWriter(escritor);

		if (clientelist.size() >= 0) {
			for (int i = 0; i < clientelist.size(); i++) {
				escrever.println();
				escrever.println(clientelist.get(i).getNome());
				escrever.println(clientelist.get(i).getCPF());
				escrever.println(clientelist.get(i).getTelefone());
				escrever.println(clientelist.get(i).getEndereco());
			}

			escrever.close();
			escritor.close();

		}
	}
	
	/**
	 * M�todo respons�vel por ler o nome,cpf,telefone e endere�o de todos os
	 * clientes presentes no arquivo texto(.txt) "arqClientes.txt"
	 * onde foi salvo na sa�da do programa.
	 * @throws Exception
	 */
	public static void lerArqCliente() throws Exception {
		File arquivo = new File("arqClientes.txt");
		if (arquivo.exists()) {

			File arqCli = new File("arqClientes.txt");
			FileReader filereader = new FileReader(arqCli);
			BufferedReader leitor = new BufferedReader(filereader);
			@SuppressWarnings("unused")
			String linha = null;

			while ((linha = leitor.readLine()) != null) {

				Cliente c = new Cliente();
				c.setNome(leitor.readLine());
				c.setCPF(leitor.readLine());
				c.setTelefone(leitor.readLine());
				c.setEndereco(leitor.readLine());
				clientelist.add(c);
			}
		}
	}
}